package net.lab1024.sa.admin.module.business.purchase.supplier.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import net.lab1024.sa.admin.module.business.purchase.supplier.constant.SupplierCreditRatingEnum;
import net.lab1024.sa.admin.module.business.purchase.supplier.constant.SupplierStatusEnum;
import net.lab1024.sa.admin.module.business.purchase.supplier.constant.SupplierTypeEnum;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 供应商实体类
 *
 * @Author 1024创新实验室
 * @Date 2024/07/19 20:30:00
 * @Wechat zhuoda1024
 * @Email lab1024@163.com
 * @Copyright <a href="https://1024lab.net">1024创新实验室</a>
 */
@Data
@TableName("t_purchase_supplier")
public class SupplierEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.AUTO)
    private Long supplierId;

    /**
     * 供应商编码
     */
    private String supplierCode;

    /**
     * 供应商名称
     */
    private String supplierName;

    /**
     * 供应商类型
     *
     * @see SupplierTypeEnum
     */
    private Integer supplierType;

    /**
     * 联系人
     */
    private String contactPerson;

    /**
     * 联系电话
     */
    private String contactPhone;

    /**
     * 联系邮箱
     */
    private String contactEmail;

    /**
     * 地址
     */
    private String address;

    /**
     * 营业执照号
     */
    private String businessLicense;

    /**
     * 纳税人识别号
     */
    private String taxNumber;

    /**
     * 银行账号
     */
    private String bankAccount;

    /**
     * 开户银行
     */
    private String bankName;

    /**
     * 信用等级
     *
     * @see SupplierCreditRatingEnum
     */
    private String creditRating;

    /**
     * 状态
     *
     * @see SupplierStatusEnum
     */
    private Integer status;

    /**
     * 备注
     */
    private String remark;

    /**
     * 创建人ID
     */
    private Long createUserId;

    /**
     * 创建人姓名
     */
    private String createUserName;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新人ID
     */
    private Long updateUserId;

    /**
     * 更新人姓名
     */
    private String updateUserName;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 删除标识：1-删除 0-未删除
     */
    private Boolean deletedFlag;
}